package main

import (
	"fmt"
)

/*
925. 长按键入
你的朋友正在使用键盘输入他的名字 name。偶尔，在键入字符 c 时，按键可能会被长按，而字符可能被输入 1 次或多次。
你将会检查键盘输入的字符 typed。如果它对应的可能是你的朋友的名字（其中一些字符可能被长按），那么就返回 True。
来源：力扣（LeetCode）
链接：https://leetcode-cn.com/problems/long-pressed-name
著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
*/

func isLongPressedName(name string, typed string) bool {

	if len(name) == len(typed) {
		for i := 0; i < len(name); i++ {
			if name[i] == typed[i] {
				continue
			} else {
				return false
			}
		}
		return true
	}
//"alex", "aaleex"
	x, i := 0, 0
	for i < len(typed){

		/*
			a	a	l	e	e	x
		x	0	1	2	3	4	5
		i	0	0	1	2	2	3
		*/

		if x < len(name) && typed[i] == name[x] {
			fmt.Println("------1------")
			fmt.Println(typed[i],name[x])
			x++
			i++
		}else if i > 0 && typed[i] == typed[i-1] {
			fmt.Println("------2------")
			fmt.Println(typed[i-1],typed[i])
			i++
		}else{
			fmt.Println("------3------")
			fmt.Println(typed[i],name[i])
			return false
		}

	}
	return x == len(name)
}

func main() {
	fmt.Println(isLongPressedName("alex", "aaleex")) //true
	fmt.Println(isLongPressedName("saeed", "ssaaedd"))   //false
	fmt.Println(isLongPressedName("leelee", "lleeelee")) //true
	fmt.Println(isLongPressedName("laiden", "laiden"))   //true
}
